package br.com.news.database.services;

import java.util.List;

import javax.inject.Inject;
import javax.inject.Named;

import br.com.news.database.daos.interfaces.IUsuarioDao;
import br.com.news.database.entities.UsuarioEntity;
import br.com.news.database.utils.GenericService;
import br.com.news.database.utils.interfaces.IGenericDao;
import br.com.news.utils.database.beans.UsuarioBean;
import br.com.news.utils.database.interfaces.IUsuarioServiceDb;

@Named
public class UsuarioServiceDb extends GenericService<UsuarioBean, UsuarioEntity, String> implements IUsuarioServiceDb{

	@Inject
	private IUsuarioDao usuarioDao;

	@Override
	protected IGenericDao<UsuarioEntity, String> getConcreteDao() {
		return this.usuarioDao;
	}

	@Override
	public List<UsuarioBean> teste() {
		return usuarioDao.teste();

	}
	
	@Override
	public List<UsuarioBean> findByExample(UsuarioBean usuario) {
		return parserEntity(usuarioDao.findByExample(parserBean(usuario)));
	}
	
	@Override
	public List<UsuarioBean> buscaTodosOsUsuariosAtivos() {
		return parserEntity(usuarioDao.buscaTodosOsUsuariosAtivos());
	}

	@Override
	public UsuarioBean autenticar(UsuarioBean usuarioBean) {
		UsuarioEntity usuarioEntity = usuarioDao.autenticar(parserBean(usuarioBean));
		if (usuarioEntity != null){
			return parserEntity(usuarioEntity);
		}
		return null;
	}

}
